next up previous
Next: 5.4 Active Context Notification Up: 5 The Active Context Previous: 5.2 Protected Procedure Calls

5.3 Augmenting the Address Space

While most Unix process resources of an APP are inherited from or shared with the active context creator, the address space of an APP is the caller's address space augmented by the active context memory range. The benefit of this augmentation is that data can be read and written directly into the caller's address space during a protected procedure call.

The active context memory range is mapped in a fixed address space range for all APPs using the active context. This means the code within the active context can be position dependent and pointers to data within the active context need no translation. The active context address range can be thought of as a sub-address space shared by all APPs.

For D11, protected procedure calls into the D11 active context mean that no protocol packing, transport, or unpacking is necessary for local D11 programs entering the D11 window system.

The augmented address space does mandate a number of rules for writing code running within an active context to ensure robustness. These rules are analogous to the rules Unix kernel programmers follow to ensure robustness in the kernel. Active context code should not call routines in the non-active address space range. Reads and writes through pointers supplied by the protected procedure caller must be verified as outside the active context address range. Signal handlers must be established to trap memory access violations due to accessing memory outside the active context address range and remedy the situation.gif



next up previous
Next: 5.4 Active Context Notification Up: 5 The Active Context Previous: 5.2 Protected Procedure Calls



Mark Kilgard
Sun Jan 7 19:06:56 PST 1996